package service;

import dao.ShareDao;
import model.Share;

import java.sql.SQLException;
import java.util.List;

/**
 * 商品分享服务类
 */
public class ShareService {
    private ShareDao shareDao = new ShareDao();
    
    /**
     * 记录分享行为
     * @param user_id 用户ID，未登录用户为null
     * @param goods_id 商品ID
     * @param share_type 分享类型
     * @param share_ip 分享IP地址
     * @return 操作结果
     */
    public boolean recordShare(Integer user_id, int goods_id, String share_type, String share_ip) {
        try {
            Share share = new Share(user_id, goods_id, share_type, share_ip);
            shareDao.addShare(share);
            return true;
        } catch (SQLException e) {
            e.printStackTrace();
            return false;
        }
    }
    
    /**
     * 获取商品的分享次数
     * @param goods_id 商品ID
     * @return 分享次数
     */
    public int getShareCount(int goods_id) {
        try {
            return shareDao.getShareCountByGoodsId(goods_id);
        } catch (SQLException e) {
            e.printStackTrace();
            return 0;
        }
    }
    
    /**
     * 获取指定类型的分享次数
     * @param goods_id 商品ID
     * @param share_type 分享类型
     * @return 分享次数
     */
    public int getShareCountByType(int goods_id, String share_type) {
        try {
            return shareDao.getShareCountByTypeAndGoodsId(goods_id, share_type);
        } catch (SQLException e) {
            e.printStackTrace();
            return 0;
        }
    }
    
    /**
     * 获取热门分享商品的ID列表
     * @param limit 返回的记录数量
     * @return 商品ID列表
     */
    public List<Integer> getHotShareGoodsIds(int limit) {
        try {
            return shareDao.getHotShareGoodsIds(limit);
        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        }
    }
    
    /**
     * 获取用户的分享记录
     * @param user_id 用户ID
     * @return 分享记录列表
     */
    public List<Share> getUserShares(int user_id) {
        try {
            return shareDao.getSharesByUserId(user_id);
        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        }
    }
    
    /**
     * 获取商品分享链接
     * @param goods_id 商品ID
     * @return 分享链接
     */
    public String getShareLink(int goods_id) {
        // 假设网站域名为 example.com，根据实际部署环境修改
        return "http://example.com/goods_detail?id=" + goods_id;
    }
} 